import { request } from '@/utils/request'
import type { ApiResponse } from '@/utils/request'

/**
 * 课程模板查询参数
 */
export interface CourseTemplateQuery {
  templateCode?: string
  templateName?: string
  subjectType?: string
  courseLevel?: string
  pageNum: number
  pageSize: number
}

/**
 * 课程模板表单数据
 */
export interface CourseTemplateForm {
  id?: number
  templateCode: string
  templateName: string
  templateNameEn?: string
  subjectType?: string
  courseLevel?: string
  description?: string
}

/**
 * 课程模板详情
 */
export interface CourseTemplateInfo extends CourseTemplateForm {
  createdTime?: string
  updatedTime?: string
}

/**
 * 课程模板分页结果接口
 */
export interface CourseTemplatePageResult {
  records: CourseTemplateInfo[]
  total: number
  size: number
  current: number
  pages: number
}

/**
 * 获取课程模板列表
 * @param query 查询参数
 * @returns 分页结果
 */
export function listCourseTemplate(query: CourseTemplateQuery) {
  return request.post<ApiResponse<CourseTemplatePageResult>>('/api/school/course/template/list', query)
}

/**
 * 获取课程模板详情
 * @param id 课程模板ID
 * @returns 课程模板详情
 */
export function getCourseTemplate(id: number) {
  return request.get<ApiResponse<CourseTemplateInfo>>(`/api/school/course/template/${id}`)
}

/**
 * 新增课程模板
 * @param data 课程模板数据
 * @returns 新增结果
 */
export function addCourseTemplate(data: CourseTemplateForm) {
  return request.post<ApiResponse<boolean>>('/api/school/course/template', data)
}

/**
 * 修改课程模板
 * @param data 课程模板数据
 * @returns 修改结果
 */
export function updateCourseTemplate(data: CourseTemplateForm) {
  return request.put<ApiResponse<boolean>>('/api/school/course/template', data)
}

/**
 * 删除课程模板
 * @param id 课程模板ID
 * @returns 删除结果
 */
export function deleteCourseTemplate(id: number) {
  return request.delete<ApiResponse<boolean>>(`/api/school/course/template/${id}`)
}

/**
 * 批量删除课程模板
 * @param ids 课程模板ID数组
 * @returns 批量删除结果
 */
export function batchDeleteCourseTemplate(ids: number[]) {
  return request.delete<ApiResponse<boolean>>('/api/school/course/template/batch', ids)
} 